package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.common.core.util.R;
import com.pactera.madp.cp.api.dto.marketing.*;
import com.pactera.madp.cp.api.entity.marketing.MarketingArticleEntity;
import com.pactera.madp.cp.api.vo.marketing.MarketingArticleVO;

import java.util.List;
import java.util.Map;

/**
 * (McMarketingArticle)表服务接口
 *
 * @author yushen.qi
 * @since 2021-05-24 15:30:54
 */
public interface MarketingArticleService extends IService<MarketingArticleEntity> {

    /**
     * 模糊查询
     *
     * @param title
     * @param classification
     * @return
     */
    List<MarketingArticleVO> selectAllOrName(String title, Integer classification);

    /**
     * 分页查询
     *
     * @param title
     * @param classification
     * @return
     */
    IPage selectAllByPageOrName(Page page, String title, Integer classification);

    /**
     * 新增文章
     *
     * @param dto
     * @return
     */
    Map<String, Integer> insert(MarketingArticleCreateDTO dto);

    /**
     * 修改文章
     *
     * @param marketingArticleUpdateDto
     * @return
     */
    boolean update(MarketingArticleUpdateDTO marketingArticleUpdateDto);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    R remove(Integer id);

    /**
     * 预览接口
     *
     * @param dto
     * @return
     */
     R previewArticle(MarketingArticlePreviewDTO dto);

    /**
     * 新增公众号文章
     *
     * @param dto
     * @return
     */
     R saveMaterial(MarketingMaterialUpdateDTO dto);

    /**
     * 更新公众号文章
     *
     * @param dto
     * @return
     */
     R updateMaterial(MarketingMaterialUpdateDTO dto);

    /**
     * 公众号
     *
     * @param appId
     * @param title
     * @param classification
     * @return
     */
     List<MarketingArticleVO> selectMaterial(String appId,String title,Integer classification);

}
